package com.eimf.saf.common.dao;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Repository;

import com.eimf.saf.base.dao.BaseDao;
import com.eimf.saf.common.commons.annotation.NoI18nAnnotation;
import com.eimf.saf.common.entity.Dict;

/**
 * @author eden
 * @date 2013-11-13 下午6:10:45
 * @Description: 数据字典持久层
 */
@Repository
public class DictDao extends BaseDao<Dict>
{

    @SuppressWarnings("unchecked")
    @NoI18nAnnotation
    public List<Dict> findAllDictList()
    {
        return super.getSqlMapClientTemplate().queryForList("DictTypeMap.findAllDictList");
    }

    /**
     * 查询指定的字典类型下所有字典数据
     * */
    @SuppressWarnings("unchecked")
    public List<Dict> findDictListByDictTypeID(final String dictTypeId)
    {
        return super.getSqlMapClientTemplate().queryForList("DictTypeMap.findDictListByDictTypeID", dictTypeId);
    }

    /**
     * 根据字典类型id和字典代码获取该字典信息
     */
    public Dict findDictById(final Dict dict)
    {
        return (Dict) super.getSqlMapClientTemplate().queryForObject("DictTypeMap.getDictById", dict);
    }

    /**
     * 查询国际化表是否已有记录
     * */
    @SuppressWarnings("unchecked")
    public Map<String, Object> checkIn18(final HashMap<String, Object> map)
    {
        return (Map<String, Object>) super.getSqlMapClientTemplate().queryForObject("InternationMap.findInternation",
                map);
    }

    /**
     * 新增数据字典。
     */
    public void addDict(final Dict dict)
    {
        super.getSqlMapClientTemplate().insert("DictTypeMap.insertDict", dict);
    }

    /**
     * 修改数据字典。
     */
    public int updDictById(final Dict dict)
    {
        return super.getSqlMapClientTemplate().update("DictTypeMap.updDict", dict);
    }

    /**
     * 数据字典启用/停用
     */
    public int updDict_status(final Dict dict)
    {
        return super.getSqlMapClientTemplate().update("DictTypeMap.updDict_status", dict);
    }

    /**
     * 删除指定的数据字典。
     */
    public int delDictById(final Dict dict)
    {
        return super.getSqlMapClientTemplate().delete("DictTypeMap.deleteDict", dict);
    }
}
